package example

import (
	"gitee.com/youbeiwuhuan/gin-practice/go-dbsharding/example/model"
	"github.com/jmoiron/sqlx"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"time"
)

func GormPoolReplace() {
	// 先创建 sqlx 连接
	dsn := "root:fan@1988fan@1988fan@1988fan@1988@tcp(127.0.0.1:3306)/gdbc?charset=utf8mb4&parseTime=True&loc=Local"
	sqlxDB := sqlx.MustConnect("mysql", dsn)

	// 配置连接池
	sqlxDB.SetMaxIdleConns(10)
	sqlxDB.SetMaxOpenConns(100)
	sqlxDB.SetConnMaxLifetime(time.Hour)

	// 将 sqlx.DB 转换为 gormv2.DB
	db, err := gorm.Open(mysql.New(mysql.Config{
		Conn: sqlxDB.DB,
	}), &gorm.Config{})

	if err != nil {
		panic("failed to connect database")
	}

	// 使用 db...
	u := model.User{Id: 34}
	/// 删除一条已有的记录（email 的主键值为 10）
	db.Delete(&u)
}
